import Vue from 'vue'
import Vuex from 'vuex'
// 1. 导入 axios
import axios from 'axios'

Vue.use(Vuex)

export default new Vuex.Store({
	state: {
		// 登录成功之后，得到的 token
		token: localStorage.getItem('token') || '',
		// 5. 定义用户信息对象
		userInfo: {}
	},
	mutations: {
		// 更新 token
		updateToken(state, newToken) {
			state.token = newToken
		},
		// 4. 更新用户的信息
		updateUserInfo(state, info) {
			state.userInfo = info
		}
	},
	actions: {
		// 2. 定义初始化用户基本信息的 action 函数
		async initUserInfo(ctx) {
			const {
				data: res
			} = await axios.get('/my/userinfo', {
				headers: {
					Authorization: ctx.state.token
				}
			})
			// 3. 将获取到的数据存储到vuex中
			if (res.code === 0) {
				ctx.commit('updateUserInfo', res.data)
			}
		}
	}
})
